A Linq query (or a Linq method, such as Distinct in your code) returns an IEnumerable collection, rather than a List<T> - provided that your SelectList constructor takes an IEnumerable rather than a specific collection such as List (which implements IEnumerable) you can pass it any collection.
A List<T> is a specific collection which implements IEnumerable - it's possible that the original example of the SelectList constructor only accepted a List<T> so it was necessary to create one specifically to pass through.
However, you can always generate one:
GenreList = GenreQry.ToList();
Will do it rather simpler.