The first time mount is called is when Phoenix sends back the static html requested by the Browser, that contains all the Phoenix LiveView JS goodness.
Second time mount is called is after the html being rendered by the browser on the initial page load, and this is when the Phoenix LiveView JS makes a call to the server to establish the socket connection in order to mount the LiveView.
Hope that I was clear enough, but if you watch this free course by @mikeclark then you will have a pretty solid understanding about the life cycle of Live View.