Para fazer isso, você precisa de uma junção externa. A propósito, a maneira como você está escrevendo sua consulta com uma junção implícita está desatualizada e não é mais recomendada. O uso da palavra-chave JOIN é recomendado. Isso também facilita a alteração de uma junção interna para uma junção externa.
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid=sc.id
Para retornar 0 em vez de NULL, use
IFNULL(..., 0)
. A consulta inteira se torna:SELECT
sc.*,
IFNULL(MIN(s.price), 0) AS minp,
IFNULL(MAX(s.price), 0) AS maxp
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid = sc.id
GROUP BY sc.id
Você também pode considerar se seria melhor retornar o NULL padrão em vez de 0 para categorias que não possuem produtos.