La query che vuoi mostrare come esempio è:
SELECT * FROM temp WHERE mydate > '2009-06-29 16:00:44';
04:00:00 sono le 4 del mattino, quindi tutti i risultati che visualizzi vengono dopo quello, che è corretto.
Se vuoi mostrare tutto dopo le 16:00, devi utilizzare la notazione corretta (24 ore) nella tua query.
Per rendere le cose un po' più chiare, prova questo:
SELECT mydate, DATE_FORMAT(mydate, '%r') FROM temp;
Questo ti mostrerà la data e le 12 ore.