¿Quizás debería agregar algo a las columnas nulas para hacerlas únicas y agruparlas en eso? Estaba buscando algún tipo de secuencia para usar en lugar de UUID() pero esto podría funcionar igual de bien.
SELECT `table1`.*,
IFNULL(ancestor,UUID()) as unq_ancestor
GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1`
WHERE (enabled = 1)
GROUP BY unq_ancestor