Both the ways you mentioned may return the differnt result set and it depends on the data exist in your table.
But if you are sure that each query returns only single row then
Two separate queries are better than join
SELECT * FROM table_a WHERE id = "";
SELECT * FROM table_b WHERE id = "";
You can use something like below as well
SELECT * FROM table_a WHERE id = ""
UNION
SELECT * FROM table_b WHERE id = "";
Join is always costly from the performance point of view
Now consider your query (how it may return the different number of record)
SELECT a.*, b.*
FROM table_a AS a, table_b AS b
WHERE a.id = "" AND b.id = "";
Assume if there are 2 rows in table_a where id=""
and 3 rows in table_b where id =""
Then DB will return the 6 rows in the result set in case of this join query (2 X 3 = 6). While in the way#1 you mentioned above DB will return the 5 rows only (2 + 3)
Also the number of columns will be different in result set in both the way
If there are 2 columns in the table_a and 2 columns in the table_b
then
Way#1 will contain the 2 columns in the resultset only
while in way#2 there will be 4 columns in the result set(2 from each table)
id. Show us your expected output.