GROUP BY destina-se a ser usado com funções de agregação, caso contrário, seleciona arbitrariamente uma linha por grupo. Sua solução (acima e em sua auto-resposta) funciona porque o MySQL parece estar mantendo a primeira linha de cada grupo, mas você não tem garantia de que isso sempre acontecerá.
Você pode obter a data do último comentário para cada
post_id
assim. select post_id, MAX(datetime) as latest from post_comments group by post_id
Use-o para selecionar o comentário mais recente:
SELECT t1.* FROM post_comments AS t1
JOIN (
SELECT post_id, MAX(datetime) AS latest FROM post_comments GROUP BY post_id
) AS t2
ON t1.post_id = t2.post_id AND t1.datetime = t2.latest