Misschien moet je iets toevoegen aan de null-kolommen om ze uniek te maken en daarop te groeperen? Ik was op zoek naar een soort reeks om te gebruiken in plaats van UUID() maar dit zou net zo goed kunnen werken.
SELECT `table1`.*,
IFNULL(ancestor,UUID()) as unq_ancestor
GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1`
WHERE (enabled = 1)
GROUP BY unq_ancestor