¿Estás seguro de estar usando lo que yo te postee?
Mira, te paso la captura de consola de lo que yo ejecuté, y voy a suprimir solamente las columnas innecesarias:
Código MySQL:
Ver original -> B.prodbun_tipo,B.prodbun_numero,B.prodbun_id
-> INNER JOIN presupuestos2 A
ON P.presu_id
=A.presu2_id
-> LEFT JOIN prod_bundle B
ON P.presu_id
=B.prodbun_numero
AND B.prodbun_tipo
=0 AND A.presu_artiid
=B.prodbun_id
-> WHERE P.presu_eliminado
=0 AND P.presu_id
=1 +-------------------+---------------+-----------------+--------------+----------------+------------+
| arti_id | bundlearti_id | bundle_cantidad | prodbun_tipo | prodbun_numero | prodbun_id |
+-------------------+---------------+-----------------+--------------+----------------+------------+
+-------------------+---------------+-----------------+--------------+----------------+------------+
Como puedes ver,
no repite datos, en tanto el gROUP_CONCAT() tenga el DISTINCT...
Estoy usando tu propio esquema y datos pasados.