Aslında tam olarak kodun mantığını anlamadım. Yani siz fonksiyonu çağırırken parametreye sadece isim giriyorsunuz, o da varsa isim+uzantı döndürüyor, yoksa yok.png döndürüyor.

Şu şekilde yazınca bir sorun yok aslında istediğiniz buysa;
function resim_kontrol($resim)
{
  $isim = $resim.".png";
  $adres = "resim/".$isim;

  if(file_exists($adres)) {
    $resim = $isim;
  }
  else {
    $resim = "yok.png";
  }
  return $resim;
}

//Test (logo.png döndürdü)
echo resim_kontrol("logo");
onun yerine tam ismi(uzantıyla birlikte) parametreye gönderseniz daha mantıklı sanki.