No era un problema de Zend o de mysql, era un problema mio, no es lo mismo recursividad de padre a hijo que de hijo a padre, asi solucione mi problema:
Código PHP:
public function recursiveGenerateCite($cite) {
$this->cite = $cite;
$sql = 'SELECT d.id,d.sigla,d.departamento_id parent FROM departamento d WHERE d.id ='.$this->cite['parent'];
$stmt = $this->em->getConnection()->prepare($sql);
$stmt->execute();
$repo = $stmt->fetchAll();
$this->cite['cite'] = $repo[0]['sigla'].'-'.$this->cite['cite'];
$this->cite['parent'] = $repo[0]['parent'];
echo $this->cite['cite'].'<br>';
if($repo[0]['id'] > 1)
$this->recursiveGenerateCite($this->cite);
return $this->cite;
}
se que "1" es el id inicial o el unico padre, es decir es un registro que no tendrá otro padre.