Du kanske borde lägga till något i nollkolumnerna för att göra dem unika och gruppera på det? Jag letade efter någon sorts sekvens att använda istället för UUID() men det här kan fungera lika bra.
SELECT `table1`.*,
IFNULL(ancestor,UUID()) as unq_ancestor
GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1`
WHERE (enabled = 1)
GROUP BY unq_ancestor