A consulta que você deseja mostrar como exemplo é:
SELECT * FROM temp WHERE mydate > '2009-06-29 16:00:44';
04:00:00 é 4AM, então todos os resultados que você está exibindo vêm depois isso, o que é correto.
Se você quiser mostrar tudo depois das 16h, precisará usar a notação correta (24 horas) em sua consulta.
Para deixar as coisas um pouco mais claras, tente isto:
SELECT mydate, DATE_FORMAT(mydate, '%r') FROM temp;
Isso mostrará a data e seu horário de 12 horas.