When using unions then it is best to select the columns individually to ensure they match between the queries. It is also worthwhile setting column aliases on the first query so that you can refer to them uniquely in the other parts of query.
I have amended this answer to demonstrate the use of 'sort keys' that are selected for each individual query then applied by the outer query that controls which columns are displayed. And what order they are displayed.
I have also provided a SQLFiddle... that you can use to 'play' with it.
tested example:
SELECT report.title
FROM
(SELECT title AS title,
'Q01' AS query_identifier,
id AS sort_key_01,
0 AS sort_key_02
FROM parents
UNION
SELECT child_text,
'Q02',
parent_id,
id FROM children
) report
ORDER BY
report.query_identifier,
report.sort_key_01,
report.sort_key_02
result:
first parent title
second parent title
third parent title
first parent first child
first parent second child
second parent first child
second parent second child
third parent first child
third parent second child
third parent third child