My question is this. If I make a stored procedure doesn't the database already pre-plan and optimise the query because it has access to the whole query?
No. Planning isn't about the text of the query, it's about the current state of the database.
Or could I create a stored procedure and then turn it into a prepared statement for more speed?
Not usually.
I was also thinking a stored procedure would help as it requires less network round trips as the query is already on the server.
Unless your query is insanely large this benefit seems marginal.
Sorry for the question but I'm not entirely sure how stored procedures and prepared statements work together.