Вы можете получить то, что хотите, выполнив следующее. Предполагается, что ваша таблица называется catprod, а столбцы - cat и prod:
select concat('<cat label=''',cat,'''>'
,GROUP_CONCAT(concat('<prod label=''',prod,''' />') SEPARATOR '')
,'</cat>')
from catprod
where cat is not null
group by cat
UNION
SELECT concat('<pro label=''',prod,'''/>') from catprod where cat is null;