Where is the ToList() method? (IQueryable)

You need to write it as:

public List<T> ConvertQueryToList<T>(IQueryable<T> query)
{
    return query.ToList();
}

This will cause the IQueryable<T> to return the appropriate List<T>, since the Enumerable.ToList() method requires an IEnumerable<T> as input (which also works with IQueryable<T>, as IQueryable<T> inherits IEnumerable<T>).

That being said, there is really no reason to use it this way. You can always just call ToList() directly if you need to create a List<T> - abstracting inside of a second layer just confuses the API further.

If you're trying to convert a non-generic IQueryable interface, you would need to do something like:

public List<T> ConvertQueryToList<T>(IQueryable query)
{
    return query.Cast<T>.ToList();
}

This would then require calling like:

var results = ConvertQueryToList<SomeType>(queryable);

Alternatively, if you want to leave this non-generic (which I wouldn't recommend), then you could use:

public ArrayList ConvertQueryToList(IQueryable query)
{
    ArrayList results = new ArrayList();
    results.AddRange(query.Cast<object>().ToList());
    return results;
}

The first of your examples returns an IQueryable<T>, whereas in the second you're using IQueryable (without the Generic Type parameter).

You can check out the two completely different interfaces here and here.