Why does coalescing make this query quicker?
The timings could be bogus because of caching.  You probably have the Query cache on.  Try again, but with SELECT SQL_NO_CACHE ...;

Recommend you add a new possibility to the ENUM behind this:

`attempt_1_result` NOT IN ('complete,incorrect,decline,prospecting')
        OR `attempt_1_result` IS NULL


That way you could avoid the NULL test and the OR.

AND `table2`.`date_assigned` &gt;= '2015-06-21'
AND `table2`.`date_completed` IS NULL


would benefit from INDEX(date_assigned, date_completed) (in either order).

Why do you have LEFT JOIN?  It seems like JOIN would give you the same result?

Why do you even mention table2?  You are not fetching anything from it.