setlocale kullanın, kategori adlarını arraya atın, sort ile sıralatın.

setlocale(LC_ALL,'turkish');

$sor=mysql_query("select * from kategoriler order by kategoriadi");

mysql_query("SET NAMES 'latin5' COLLATE 'latin5_turkish_ci'");
mysql_query("SET CHARACTER SET latin5");
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'"); 

while($yaz=mysql_fetch_array($sor)){
    $id= $yaz['id'];
    $kategoriadi[]=$yaz['kategoriadi'];
}

sort($kategoriadi, SORT_LOCALE_STRING); // arrayı türkce karakterlerde dahil alfabetik sıralar

for ($i=0; $i < count($kategoriadi); $i++) {
	echo $kategoriadi[$i] . "<br>";
}