Peut-être devriez-vous ajouter quelque chose aux colonnes nulles pour les rendre uniques et les regrouper ? Je cherchais une sorte de séquence à utiliser à la place de UUID() mais cela pourrait tout aussi bien fonctionner.
SELECT `table1`.*,
IFNULL(ancestor,UUID()) as unq_ancestor
GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1`
WHERE (enabled = 1)
GROUP BY unq_ancestor