La consulta que desea mostrar como ejemplo es:
SELECT * FROM temp WHERE mydate > '2009-06-29 16:00:44';
04:00:00 son las 4 a. m., por lo que todos los resultados que muestra vienen después eso, lo cual es correcto.
Si desea mostrar todo después de las 4:00 p. m., debe usar la notación correcta (24 horas) en su consulta.
Para aclarar un poco las cosas, prueba esto:
SELECT mydate, DATE_FORMAT(mydate, '%r') FROM temp;
Eso le mostrará la fecha y son las 12 horas.