You claim the error is in two places, which one is it? Also your UserLogin method is void so you can't return anything (you are trying "return user", you can only just "return"). Next I don't see how this line
IEnumerable<ParseObject> results = await query.FindAsync();
can give the error you have posted, unless it's the FindAsync causing the issue (ie something in your query).
Regardless you are getting this error because you have a variable of type ParseObject and you are assigning something pf type IEnumerable<ParseObject> to that variable.
ParseObject po;
IEnumerable<ParseObject> pos = new List<ParseObject>();
po = pos;
po is ParseObject and pos is a collection of multiple ParseObjects so you can't assign one to the other. The solution depends on your business needs which we don't know. It could be you are expecting there to only be one object in your collection so you need to do something like this
po = pos.FirstOrDefault();
It's hard to say from what has been posted.