With your query it won't return an error only if the subquery return 1 and only 1 result.
You should do an explain on the query :
Explain select * from table1 
where table1_seq = (select table2_seq from table2 where id2=X)
Will return something like that :
id  |   select_type |   table   |   partitions  |   type    |   possible_keys   |   key     |   key_len |   ref     |   rows    |   filtered    |   Extra
==========================================================================================================================================================
1   |   PRIMARY     |   Table1  |   NULL        |   const   |   PRIMARY         |   PRIMARY |   4       |   const   |   1       |   100.00      |   NULL
2   |   SUBQUERY    |   Table2  |   NULL        |   const   |   PRIMARY         |   PRIMARY |   4       |   const   |   1       |   100.00      |   Using index 
Inner Join in other hand will also do 2 query :
EXPLAIN select table1.*
from table1 
INNER JOIN table2 ON table1.table1_seq = table2.table2_seq
WHERE  table2.id2=X
Result :
id  |   select_type |   table   |   partitions  |   type    |   possible_keys   |   key     |   key_len |   ref     |   rows    |   filtered    |   Extra
==========================================================================================================================================================
1   |   SIMPLE      |   Table1  |   NULL        |   const   |   PRIMARY         |   PRIMARY |   4       |   const   |   1       |   100.00      |   NULL
2   |   SIMPLE      |   Table2  |   NULL        |   const   |   PRIMARY         |   PRIMARY |   4       |   const   |   1       |   100.00      |   NULL
So it's less a problem of benchmark and more about of what you want to do. If you want to select only 1 value from another table you can really do the query you wrote.