How to handle conditional subquery's

SELECT
     (SELECT RAW q
      FROM default AS q
      WHERE q._type = "question" AND q._id = d.question)[0].* ,
      CASE WHEN ARRAY_LENGTH(childqs) > 0
           THEN (SELECT RAW q FROM default AS q WHERE q._type = "question" AND q._id IN childqs)
           ELSE MISSING
           END AS children,
      d.`order`
FROM default AS c
UNNEST c.data AS d
LET childqs = (ARRAY v.question FOR v WITHIN d.child WHEN v.question IS NOT MISSING END)
WHERE c._type = "dynform"
ORDER BY d.`order` ;