Yatmadan önce cevap yazayım hocam sana.

<?php
$ustkategoriler = // mysql sorgusu ile kategori_ust = 0 olanları döngüye alıyoruz.
foreach($ustkategoriler as $ustkategori){
   $ustkatid = $ustkategori->kategori_id;
   $ustkatad = $ustkategori->kategori_title;

   echo "$ustkatad<br />";
   $altkategorisay = // numRows ile WHERE kategori_ust = $ustkatid sorgusu yapacaksın, değer > 0 ise aşağıya geçiyoruz.
   if($altkategorisay > 0){
      $altkategoriler = // mysql sorgusu ile yine WHERE kategori_ust = $ustkatid olanları döngüye alacaksın.
      foreach($altkategoriler as $altkategori){
         $altkatid = $altkategori->kategori_id;
         $altkatad = $altkategori->kategori_title;
         echo "-- $altkatad<br />";
      }
   }
echo "<hr />";
}
?>
Syntax hatası olabilir. İyi forumlar.