Search Users base on meta_value & meta_key

Your query is wrong that’s way noting is returned because there is no row in the database that holds more then one meta_key.
What you can do instead is create a Sub Query to get all user id’s of users who live in London as a Sub Query and the use that to filter users id’s of users who are named David, something like this:

$query = "SELECT user_id FROM $wpdb->usermeta
    WHERE (meta_value LIKE '%%david%%') 
    AND (meta_key = 'first_name') 
    AND user_id IN (SELECT user_id FROM $wpdb->usermeta WHERE (meta_value LIKE '%%london%%') AND (meta_key = 'location'))";

$rows = $wpdb->get_results($query)

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)