If you want to retain WHY they are in the list, then keep it as three queries so that you can list the results separately. Note that this may result in an item being in more than one list, for instance, top rated and most wished for.
If you want one result set where the members are either wished for, top rated or best seller then you might be able to use one query, depending on how those attributes are determined. This will be one list though and you won't know why an item is on the list.
You are right I think I should use three different queries since conditions are totaly diffrenent and some of them are calculated through relations but my main concern is if this is true and database wont harm when number of people increase?
So if the number of visitors increases, yet the lists are fairly stable, then cache the results of the three queries and only update them every few hours (for instance)