Because the optimizer thinks "FULL TABLE SCAN" cost is cheaper than using indexes.

See below:
TABLE ACCESS FULL Object owner=joe Object name=table1 Cost=87756 Cardinality=1461194 Bytes=36529850

First run a query on the big table with out joining the small table but with all other predicates on table1.
And see the statistics matches with your output. If they are not, then create new indexes on high cardinality columns. And check one more time.

Also, histogram may help in this case.

Tamil