You can also use MySQL functions to do the sort. Just put the computation in the ORDER BY clause.
First sort hour
Then AM/PM
THen minute
SELECT columnname FROM sometable
WHERE 1
ORDER BY
EXTRACT( HOUR_MINUTE FROM columname )+IF( SUBSTRING( columname , 7, 2 ) = 'PM', 1200, 0)
EXTRACT( HOUR_MINUTE FROM '11:05 PM' )+IF( SUBSTRING( '11:05 PM', 7, 2 ) = 'PM', 1200, 0)
would return 2305
EXTRACT( HOUR_MINUTE FROM '11:05 AM' )+IF( SUBSTRING( '11:05 AM', 7, 2 ) = 'PM', 1200, 0)
would return 1105