¿y la segunda consulta?
Recuerda que tienes UNION y UNION ALL, ¿cuál de las dos quieres usar?.
Supongo que quieres "partir" tu consulta en donde está el segundo JOIN.
Código:
SELECT DISTINCT productos.id, titulo, descripcion, path
FROM productos
LEFT JOIN subproductos ON productos.id = subproductos.producto_id
JOIN posiciones ON productos.id = posiciones.producto_id
WHERE posiciones.tipo = 'home'
and (productos.sitio = " . SITE_NUMBER . " or productos.sitio is null)
ORDER BY posicion
LIMIT 8
Pero nos econtraríamos con un enlace que falta que es entre las tablas productos y subproductos.
Si intentas hacer una consulta UNION, la relación entre productos y posiciones te devolverá un set de datos y la otra consulta te hará un producto cartesiano.
¿podrías ser más específico con lo que quieres lograr y detallar un poco más las tablas?
Saludos!
Gustavo Echenique