GROUP BY está diseñado para usarse con funciones de agregación; de lo contrario, selecciona arbitrariamente una fila por grupo. Su solución (arriba y en su auto-respuesta) funciona porque MySQL parece mantener la primera fila de cada grupo, pero no tiene la garantía de que esto suceda siempre.
Puede obtener la fecha del último comentario para cada post_id
así.
select post_id, MAX(datetime) as latest from post_comments group by post_id
Úselo para seleccionar el último comentario:
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