MySQL: SLEEP injection
No results are returned because, unsurprisingly, there are no records that meet the conditions of the WHERE clause.  SLEEP() will return 0 (if not interrupted), and all operands will be cast as doubles for the division operation (hence the warning about truncated incorrect double).  In essence, the query is the same as 

SELECT fname, lname FROM contacts WHERE fname = 0 / 0 / 0;


Division by zero results in null, so you're basically looking for records where fname = NULL, which is never true.