That is not a lot of rows for IQ. What version are you running?
Can you post the HTML query plan?
Is the ID column in B and C a unique constraint or unique identifier (primary key or HG-U index)?
Have you added an HG index to A.Gender and b.Age and c.Age?
If you have not properly identified unique constraints, the optimizer may be trying to resolve a cartesian join. The query plan will show this.
You can also try placing the OR conditions in the join statement:
insert into tmpTable1 (ID)
select distinct A.ID from MainTable A
inner join Child1 B
on A.ID = B.CustomerID and B.Age in (26,27)
inner join Child2 C
on A.ID = C.CustomerID and C.Age in (26,27)
Also, what are your .cfg settings? Specifically -iqmc and -iqtc.
Chris