Talvez você deva adicionar algo às colunas nulas para torná-las únicas e agrupar isso? Eu estava procurando algum tipo de sequência para usar em vez de UUID(), mas isso também pode funcionar.
SELECT `table1`.*,
IFNULL(ancestor,UUID()) as unq_ancestor
GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1`
WHERE (enabled = 1)
GROUP BY unq_ancestor