The first is preferred in Python, based on the EAFP design principle ("Easier to Ask Forgiveness than Permission"). Aside from speed, one advantage of this system is that there is no race condition -- in the second example, if other concurrent access to the database changes the results between the execution of the first and the second line of code, then your results will be inconsistent.
Depending on your use of transactions, the race condition possibility may be a non-issue, but in general EAFP is a prominent design pattern in Python and experienced Python coders will not have any trouble reading code in that form.
ETA: Oh, and I forgot: don't use except: (you do need the colon). Use except IndexError: or whatever other specific exception you are looking for. That way if you get a totally unexpected error like a failure to reach the database, it will propagate through and not be hidden. You don't want a situation where you later write code counting on the exception being thrown to mean "there are no results" and instead the system is trying to tell you "the database is down".