Quieres el promedio de precio por categoría, tratado como una tabla con la que luego harás JOIN.
SELECT categoria, AVG(precio) AS promedio
FROM (SELECT *
FROM productos
Lo que falta en la subconsulta