penso che dalal selct * tu ottenga dati simili a questi...
ogni record estartto ti dice se ha o no ha uan sottocategoria
$categoria = $row[categoria];
$subCategoria = $row[subCategoria];
print("<il>".$categoria);
if ($subCategoria)
{
//fai quel che devi fare
//fai girare un ciclo per scrivere le sottocategorie
}
else
{
print("</il>");
}