The big difference is that AddRange mutates that list against which it is called whereas Concat creates a new List. Hence they have different uses.
Also Concat is an extension method that applies to any IEnumerable<T> and returns an IEnumerable<T> you need a .ToList() to result in a new List.
If you want to extend the content of an existing list use AddRange.
If you are creating a new list from two IEnumerable<T> sources then use Concat with .ToList. This has the quality that it does not mutate either of sources.
If you only ever need to enumerate the contents of two Lists (or any other IEnumerable) then simply use Concat each time, this has the advantage of not actually allocating new memory to hold the unified list.