per ora ho usato un mix di CONCAT e GROUP_CONCAT e sono riuscito a creare un json valido:
codice:
SELECT articolo_codice SKU_CODE, articolo_nome_eng TITLE, tipo_nome_eng TYPE,
            sezione_nome_eng SECTION, categoria_nome_eng CATEGORY, brand_nome BRAND, giacenza_tg SIZE,
            giacenza_qta QUANTITY, 
            (
                SELECT CONCAT("[", GROUP_CONCAT(
                    CONCAT("{\'IMG\':" , "\'http://www.sito.it/", img_nome, "\'}")
                ), "]")
                 FROM immagini_articolo
                 WHERE fk_articolo = articolo_id
            ) IMAGES, 
            colore_nome_eng COLOR, articolo_descrizione_eng DESCRIPTION, articolo_prezzo PRICE
            FROM articoli
            INNER JOIN tipi ON fk_tipo = tipo_id
            INNER JOIN sezioni ON fk_sezione = sezione_id
            INNER JOIN categorie ON fk_categoria = categoria_id
            INNER JOIN brands ON fk_brand = brand_id
            INNER JOIN giacenze ON giacenze.fk_articolo = articolo_id
            INNER JOIN colori ON colore_id = fk_colore
            WHERE articolo_pubblicato = 1 
            ORDER BY articolo_codice, giacenza_tg
il result set è poi dato in pasto a un json_encode.
è validato e corretto, anche se non penso sia la soluzione migliore....