Hola,
No se si entiendo tu duda. Pero supongo que sera como hacer que solo se muestre el nombre de categoria en el primer producto de cada categoria. Pues seria con algo asi:
Código PHP:
$cat_actual='';
while($row=mysql_fetch_assoc($res)) { // o como tengas tu bucle
// donde actualmente muestras la categoria
if ($cat_actual!=$row['categoria']) {
$cat_actual=$row['categoria'];
echo $row['categoria'];
} else {
echo ' '; // o nada, como prefieras
}
// el resto de bucle
}
La teoria es que solo muestras la categoria si el valor no coincide con la categoria del registro anterior.
Suerte.