Сервер получит не $kstgrp, а $_POST['$kstgrp'], и LIKE здесь совсем не нужен. А так как в базе не может быть первичного ключа (похоже запрос по нему?) равного 0, то список не должен иметь такого значения тоже.
if($id = (int)$_POST['$kstgrp']) { //обязательно приводить к типу или экранировать внешние данные, либо использовать подготовленные запросы
$sql = "SELECT * FROM kosttable WHERE kstgrp=" . $id;
//.....
}
Вот только как это понимать, что ответ сервера на клиенте помещается сюда
document.getElementById("kostenstelle1").
value = xhr.responseText;
при ответе сервера
echo "
<option class=".$row"kstgrp"]." id=".$row["id"]." .... ?