Cambiar el nombre del campo en la salida:
$sql = "SELECT p.id,
p.name,
p.description,
p.price,
c.name AS OTHER_NAME,
p.sub
FROM products p
JOIN category c on p.category = c.id
ORDER by p.id";
Y luego obtén OTHER_NAME