Sí, es normal.
Nunca debe confiar en el orden en que se devuelven los campos sin agrupar y sin agregar.
GROUP_CONCAT
tiene su propio ORDER BY
cláusula que el optimizador tiene en cuenta y puede cambiar el orden en que se analizan los registros.
Para devolver el primer registro junto con GROUP_CONCAT
, usa esto:
SELECT m.*, gc
FROM (
SELECT id, MIN(date) AS mindate, GROUP_CONCAT(tags) AS gc
FROM myview
GROUP BY
id
) md
JOIN m.*
ON m.id = md.id
AND m.date = md.mindate