Yorgunluktan problemi yeni gördüm, çalışan kodları aşağıda verdim. Hatanın nerde olduğuna gelince, sen mysql sorgusunda $row["id"] değerine göre sildiriyorsun, oysa $_POST["sil"] değerindeki veriyi silmeli.

<?php
$sql = mysql_query("Select * from kategoriler");
while($row = mysql_fetch_assoc($sql)){
    echo '<option name="'.$row["id"].'">'.$row["kat_adi"].'</option>';
    if($_POST["sil"]){
    $sil = mysql_query("delete from kategoriler where id='".$_POST["sil"]."'");
        if($sil){
            echo "Silindi";
            header("Refresh: 1; url=admin.php?sayfa=kategorisil");
        } else{ echo "Hata Var"; }
    }
}
?>