std::initializer_list - это шаблон класса, содержащий последовательность инициализаторов, который имеет очень минимальный интерфейс, поскольку его единственное назначение - использовать для инициализации другого объекта последовательностью значений, которые он содержит. В отличие от std::vector или std::deque, std::initializer_list не предназначен для использования в качестве контейнера общего назначения.

Функция LinkedQueue<T>::LinkedQueue(const std::initializer_list<T>&) вызывается, когда кто-то пытается инициализировать список LinkedQueue<T>, например, так:

LinkedQueue<int> q {1, 2, 3};

Язык автоматически строит объект std::initializer_list<int>, который содержит значения 1, 2, 3, в таком порядке. Этот объект передается в конструктор. После возврата конструктора пользователь ожидает, что вновь построенный объект LinkedQueue<int> будет содержать значения 1, 2, 3, именно в таком порядке.

Вам нужно написать конструктор так, чтобы это было правдой. Для этого можно выполнить итерацию по объекту std::initializer_list<T> с помощью цикла for, основанного на диапазоне, и добавить в список значения по порядку. Что-то вроде этого может сработать, если предположить, что у вас есть функция push_back и рабочий конструктор по умолчанию:

template<class T>
LinkedQueue<T>::LinkedQueue(const std::initializer_list<T>& il): LinkedQueue() {
    for (const T& val : il) {
        push_back(val);
    }
}

Это делегирует конструктору по умолчанию установку инвариантов класса, а затем вставляет заданные инициализаторы по порядку.