Depends on whether the fact that it's empty represents a bug you need to fix, or a valid situation you just need to handle. You could avoid that error message by something like this, but that doesn't mean you won't then run into another problem:
public function getFirstElement()
usort($this->menuItems, array(BOL_NavigationService::getInstance(), 'sortObjectListByAsc'));
return isset($this->menuItems) ? $this->menuItems : false;
But then you'd have to figure out what to do when you call that function if it returns Boolean false.