Quieres solo productos con precio mayor a 0 (WHERE), agrupados por categoría, y solo las categorías con más de 1 producto (HAVING).
SELECT categoria, COUNT(*) AS cuantosFROM productosWHERE precio > 0GROUP BY categoria El filtro de grupos que falta