senin tablo yapına göre. direkt kullanabilirsin.

function sinirsiz_kategori_agaci($kategoriler, $kategori_ust = 0)
{
    $html = '<ul class="class_ul">';
    foreach ($kategoriler as $kategori) {
        if ($kategori['kategori_ust'] == $kategori_ust) {
            $html .= '<li class="class_li"><a href="#url">' . $kategori['kategori'] . '</a>';
            $html .= sinirsiz_kategori_agaci($kategoriler, $kategori['kategori_id']);
            $html .= '</li>';
        }
    }
    $html .= '</ul>';

    return $html;
}
$kategoriler = []; //buraya tablo sorgusu gelecek.
echo sinirsiz_kategori_agaci( $kategoriler );
html çıktısı
<ul class="class_ul">
  <li class="class_li">
    <a href="#url">Yöresel ürünler</a>
    <ul class="class_ul"></ul>
  </li>
  <li class="class_li">
    <a href="#url">Süt ürünleri</a>
    <ul class="class_ul">
      <li class="class_li">
        <a href="#url">Kaşar</a>
        <ul class="class_ul">
          <li class="class_li">
            <a href="#url">Eski Kaşar</a>
            <ul class="class_ul"></ul>
          </li>
          <li class="class_li">
            <a href="#url">Taze Kasar</a>
            <ul class="class_ul"></ul>
          </li>
        </ul>
      </li>
      <li class="class_li">
        <a href="#url">Çeçil</a>
        <ul class="class_ul"></ul>
      </li>
    </ul>
  </li>
</ul>