Eu uso uma única solicitação que retorna o nome da categoria para cada item e uso o PHP para exibi-lo
<?php
$cat;
while($result = $statement->fetch()) {
if($result['cat'] !== $cat) {
$cat = $result['cat'];
/* display cat */
}
/* display items */
}
?>