Es la misma que proponías en la tuya:
Cita: Producto<-Subproducto->Tipo
Producto->Marca
El INNER JOIN simplemente hace que devuelva los registros coincidentes, pero tienen que cumplirse todas las relaciones para que obtenga datos.
El LEFT JOIN devuelve todo lo que está en la tabla izquierda, tenga o no coincidencias con la tabla derecha. Como la tabla derecha puede obtener NULL en algun caso, esos NULL no obtendrán relaciones en la tercera tabla (Tipos de producto), sólo aquellos de la segunda que existan pueden devolver datos o null de la tercera.