If you want a single result set with the first row containing a list of all
table_a, and subsequent rows listing all
table_b (one per row), you could
UNION the two queries. However, you would have to cast the results to a common data type (presumably something like
varchar), and you would technically need to include a sort order field to guarantee that the users are in the first row.
FROM (select group_concat(user) as values, 1 as sort_order from table_b
select CAST(id as varchar) as values, 2 as sort_order from table_a
ORDER BY sort_order
This will almost certainly be at least slightly slower than running the two queries separately. Not sure if that will matter, in your circumstance.
UNION checks for and eliminates duplicate rows;
UNION ALL just combines all rows without checking. Since we don't need to worry about duplicates....)