Your request is pretty unclear. Joining table 2 to table 1 and returning only records where there is a match is pretty easy:
SELECT t1.*, t2.table2_id FROM table_1 t1
LEFT JOIN table_2 t2
ON t2.table1_id=t1.table1_id
WHERE t2.table2_id IS NOT NULL
It's part b that is confusing to me. What do you mean when you say 'to be in Table 2'? table3_id is a field in table 2 and will always be 'in table 2'.
I'm not certain, but it sounds like you want to select all the records in table 1 that have some matching record in table (based on the table1_id field that you list as the 2nd field of table 2) BUT YOU WANT TO EXCLUDE certain records based on some quality of the third field in table 2 and perhaps whether or not it has a corresponding record in table 3.
If you want to get all records from table 1 that have a matching record in table 2 which, in turn, has no valid matching record in table 3, this might work:
SELECT t1.*, t2.table2_id, t2.table3_id, t3.table3_id
FROM table1 t1
LEFT JOIN table2 t2
ON t2.table1_id=t1.table1_id
LEFT JOIN table3 t3
ON t3.table3_id = t2.table3_id
WHERE t2.table2_id IS NOT NULL
AND t3.table3_id IS NULL