Вы правы. Ошибка находится в методе System.Collections.Concurrent.ConcurrentQueue<T>+Segment.TryRemove(out T, ref ConcurrentQueue<T>.Segment)
.
Если вы посмотрите на этот метод в Reflector, вы увидите следующую строку:
result = this.m_array[low];
После него должна быть следующая строка:
this.m_array[low] = default(T);
Для справки, вы можете увидеть, как это правильно реализовано в методе System.Collections.Generic.Queue<T>.Dequeue()
.