А вот так не получается?: SELECT N.id, N.name,

А вот так не получается?: SELECT N.id, N.name, CONCAT( "[", GROUP_CONCAT( CONCAT("{shop:'",CONVERT(S.name USING utf8),"',"), CONCAT("count:'", if(P.count > 0, CONVERT(P.count USING utf8), 0),"'}") ) ,"]" ) as data FROM modx_products_nomenclature N
LEFT JOIN modx_shops S ON S.active = 1 LEFT JOIN modx_warehouse_products P ON P.product_id = N.id and S.warehouse_id = P.warehouse_id GROUP BY N.id