Вы должны оставить соединение для каждого значения атрибута, которое вы хотите получить, например,
select p.ProductId,p.ProductDesc,
a1.AttributeValues as Brand,
a2.AttributeValues as Category,
a3.AttributeValues as Artist,
from Product p
left join ProductAttributeValues a1 on(p.ProductId=a1.ProductId and a1.AttributeID=1)
left join ProductAttributeValues a2 on(p.ProductId=a2.ProductId and a2.AttributeID=2)
left join ProductAttributeValues a3 on(p.ProductId=a3.ProductId and a3.AttributeID=3)
Чтобы перевести это обратно на английский, «дайте мне все товары, и для каждого из них, дайте мне бренд, категорию и артиста, если они существуют»
Я предположил, что у продукта есть только одно или нулевое значение для каждого атрибута.