10. satırda
<li> <input type="radio" name="ustmenu" value="'.$menu->id.'" /> '.$radioButtonY.' '.$menu->baslik.' '.menuListele2($menu->id).'</li>
fonksiyonu tekrar cagırmışsın. buda li açıklaması içinde tekrara sebep olmuş.

edit: fonksiyonun çıktısı ile istediğin çıktı tamamen farklı. Fonksiyonu değiştirmek gerekli.

edit 2: umarım aşağıdaki kod istediğini verir.
<?php function menuListele2($menuid=0,$ozellik="")
{
$yaz ="<ul>";
global $vt;
    
   $menusql = $vt->tablo("SELECT * FROM menuler where ustmenu='".$menuid."' ".$ozellik."  order by sira and ozellik asc ");
foreach($menusql as $menu) 
       { 
	$yaz.= ' <li> '.$radioButtonY.' '.$menu->baslik.'</li> ';
	}
    
		$yaz .="<ul>";  
		   return $yaz;
}
 
     echo menuListele2(0);?>