Vielleicht sollten Sie den Nullspalten etwas hinzufügen, um sie eindeutig zu machen und danach zu gruppieren? Ich habe nach einer Art Sequenz gesucht, die ich anstelle von UUID() verwenden kann, aber das könnte genauso gut funktionieren.
SELECT `table1`.*,
IFNULL(ancestor,UUID()) as unq_ancestor
GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1`
WHERE (enabled = 1)
GROUP BY unq_ancestor