Array içindeki son elemanı bulup eğer mevcut eleman son ise virgülsüz yazılmasını sağlarsınız. Tek eleman olunca da son eleman olacağı için virgülsüz yazar. Mantık bu şekilde. Syntax hatası olabilir.

$last_key = end(array_keys(get_the_category()));
foreach ((get_the_category()) as $category) {
if ($category== $last_key) {
echo $category->name; // Son kategori yada tek kategori ise virgül yok
} else {
echo $category->name.","; // Son kategori değilse virgül ekler.
}
}

?>