So, considering this scarcity and injustice, why not make contribution to FEMA optional, and give preferable aid to those who made that contribution
Some aid goes to other governmental organizations that are part of impacted states, counties, and municipalities. Or to private organizations like hospitals.
A lot of the federal aid goes not to individuals but to doing things. For example, it may clear out your neighbor's collapsed house and bulldoze the debris that floated onto it during the flood. That keeps you from living next to a property with rotting animal and fish corpses. So it helps you as much as it helps your neighbor.
Aid that goes to companies helps not just the companies' owners but also their customers and workers. What about people who have lost not only their house but their jobs? Or people who come back but can't get groceries because there is nowhere to shop.
Perhaps the doctors and nurses from the hospital evacuated. Providing them with shelter, food, water, and electricity to return benefits you if you need medical care, even if they didn't pay their premiums.
In addition, aid that goes to individuals is often distributed to everyone. Truck rolls in, people grab jugs of water or packages of food. They don't check identification, so they have no way of checking if people are paid up. Even if they wanted to add that extra layer, some people don't have identification.
Only a small portion of the aid goes to individuals in a way that it could be cut off if the individual didn't pay the tax.
There is an existing government program that gives aid just to people who pay, called the National Flood Insurance Program. I found that by reading about federal preparation for Harvey. It doesn't work quite like you want. It's a traditional insurance program. It collects premiums rather than charging income tax.
There are ways to make aid more related to payments. Federalism shifts burdens away from the national government and to states. And it can be taken further, to counties and municipalities. Due to the way that currency works, it is more difficult for smaller governments to borrow money at need. To make this work, they have to save ahead of the time. Texas actually has a rainy day fund for such things, although it may not be funded enough for hurricane relief.
Federalism would push aid down to lower levels. Then Texas would be paying for Texas aid. And previously New York and New Jersey would have paid for their aid. So we wouldn't have New York and New Jersey politicians accusing Texas politicians of hypocrisy for voting for Texas aid but against previous aid to other states.
Of course, we might then have residents of Houston complaining about how their politicians didn't save enough ahead of time.