$query2 is slightly wrong. It's getting confused with the OR statements. Have a look at the following:
CREATE TEMPORARY TABLE city_room SELECT * FROM table_1 WHERE (city='city_1' OR city='city_2') AND (rooms='studio' OR rooms='1') AND listing_status = '1';
You have to repeat the attribute name for each value you want to search on, and you have to use parentheses to separate youre AND and OR statements. Alternatively, use the following query, which should produce the same results:
CREATE TEMPORARY TABLE city_room
SELECT * FROM table_1 WHERE city IN ('city_1', 'city_2') AND rooms IN ('studio', '1') AND listing_status = '1';
The IN statement replaces the OR statements, runs quicker and makes the SQL query easier to read and more compact.