I am able to run a text file that has queries delimited by ';' in the impala-shell. However, I have some queries that require the results of another query. For example, if Query1 gives me name | age | birthday and then the following query is something like SELECT * FROM table1 WHERE age in (...), and those ages are from the age column from the first query. 
I know you can specify with --vars option, but that seems to be for inserting specific values. Is there a way to create Python script to handle something like this that would run in the impala-shell?
I think creating temp tables will help here. 
Impala Only solution -
step 0 - load the table from file.
step 1 - create temp table tmp_table as Query 1.
step 2 SELECT * FROM table1 WHERE age in (tmp_table).
step 3 - Drop table tmp_table.
You can use subquery as well in case all are in impala tables.
SELECT * FROM table1 WHERE age in (select age from Query1)  
Yes, you can always use python to run impala-shell queries. But they will be like call scripts one after another and for your requirement you can do them entirely in impala.
Run Python script in impala-shell