SELECT * FROM
cms_taggroups
LEFT JOIN ( SELECT 
	tag_taggroup_id,
	GROUP_CONCAT(
		CONCAT(
			'tag_id:',tag_id,';',
			'tag_name:',tag_name,';',
			'node_ids_spl:',COALESCE(node_ids,'') -- spaced list
		)
				
) AS tags_data
	FROM cms_tags -- does WHERE clause improve performance?
    LEFT JOIN (
		SELECT tin_tag_id, GROUP_CONCAT(node_id SEPARATOR ' ') AS node_ids 
		FROM cms_tags_in_nodes 
		JOIN cms_nodes ON tin_node_id = node_id
		GROUP BY tin_tag_id
	) nodes ON tin_tag_id = tag_id
	GROUP BY tag_taggroup_id
) tags ON taggroup_id = tag_taggroup_id
WHERE taggroup_id != 1
ORDER BY taggroup_name;