Как правильно получить часть данных из отношения в Symfony?
Для данных случаев можно использовать метод matching у ArrayCollection. Передаём туда подготовленный объект Criteria, с помощью которого настраиваем нужную фильтрацию. Когда мы будем дёргать метод getOwner выполнится запрос, который получит только нужные нам данные, не получая все связанные записи.use Doctrine\Common\Collections\Criteria;

/**
 * @ORM\Entity
 */
class Group {
  // ...
  public function getOwner() {
    $criteria = Criteria::create()->where(фильтруем по роли или что-то ещё);

    return $this->getUsers()->matching($criteria); 
  }
}
Не касаясь того, насколько правильно у вас это с архитектурной точки зрения, могу сказать, что вы можете в методе getOwner() выбрать именно то, что вам нужно воспользовавшись фильтрацией по критерию в коллекции.Взять всех пользователей через аннотации и фильтровать на стороне пхп, сделать отдельный запрос без аннотаций или можно аннотациями как-то это сделать?
А вот здесь вы просто глупости говорите. Аннотации - это всего лишь один из синтаксисов описания маппинга сущности. Почитайте документацию Doctrine, чтобы лучше понять, с чем имеете дело.В гугле не забанен, просто даже не знаю как это загуглить.
Почитайте документацию по Doctrine ORM. В ней достаточно важных моментов, которые лучше узнать до начала работы, чтобы потом не переписывать всё, когда узнаете о них.