Итак, мы имеем:
private final Queue<Dishes> dishesQueue = new ConcurrentLinkedQueue<Dishes>();
и связанный с ней метод:
public Queue<Dishes> getDishesQueue() {
    return dishesQueue;
}
Dishes dishes = manager.getDishesQueue().poll();
manager.getDishesQueue().isEmpty()
Код выше совершенно понятен, мы пользуемся методом getDishesQueue() по его назначению и получаем ожидаемый результат. poll() логически согласуется с функцией этого метода, как и isEmpty(). Методом научного тыка и на основании подобного вызова для ордер, было найдено решение:
manager.getDishesQueue().add(dishes);
Совершенно не понятно, почему add() может так работать? Добавляя к manager.getDishesQueue().add(dishes); Этот метод выступает как указатель на очередь? Почему через getDishesQueue() мы кладём в очередь новое блюдо, я вообще не могу понять.