First there is a mistake in the code. For it to work right as macro logic I needed to wrap the EXIST() function call in a %SYSFUNC() macro function call.
What that statement means is that when the dataset INTEXT.FINAL_ALL exists the macro should generate the SAS code INTEXT.FINAL_ALL. Since there is no %ELSE clause when the dataset does not exist then it generates no SAS code at all. So the effect is that when the dataset exists both datasets are referenced in the SET statement and when it does not only the new data is referenced.