А вот так не получается?: 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