Sin ver la tabla de propiedades, es algo complicado responderte, porque depende de cómo estén estructuradas esas "propiedades", y cómo se las identifica a cada una de ellas, la cosa puede cambiar.
En general, necesitas una consulta con LEFT JOIN, y por cada columna de la tabla resultado se requiere usar un IF() en el SELECT (con su correspondiente alias).
El problema aparece si las "propiedades" se ingresan a la tabla de forma manual, y se den casos como que una propiedad es "Talle" y en otro registro aparezca como "Tall.". Entonces todo falla.
Además, si cada producto puede tener diferentes cantidades de propiedades, entonces se requieren tres tablas, porque eso es una relación N:N y por definición eso crea una tabla relacional.
En principio, la consulta es algo así:
Código MySQL:
Ver original P.Producto,
SUM(IF(PR.descripcion
= 'talle', 1, 0)) Talle
, SUM(IF(PR.descripcion
= 'marca', 1, 0)) Marcas
, ... (el resto de los subconjuntos)
producto P
INNER JOIN propiedad_producto PR
ON P.idproducto
= PR.idproducto
LEFT JOIN propiedad PO
ON PR.idpropiedad
= PO.idpropiedad
Nota bene: Siempre es necesario que aportes la estructura de las tablas para poder responderte, de lo contrario, como ahora, estamos adivinando lo que tienes y lo que se puede hacer.
No lo olvides para la próxima.