Може би трябва да добавите нещо към нулевите колони, за да ги направите уникални и да групирате по това? Търсих някаква последователност, която да използвам вместо UUID(), но това може да работи също толкова добре.
SELECT `table1`.*,
IFNULL(ancestor,UUID()) as unq_ancestor
GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1`
WHERE (enabled = 1)
GROUP BY unq_ancestor