Yes. It is called a "trip/travel cancellation insurance". Just like every other insurance, you get it before something happens, pay for your trip, get the insurance and then reclaim the money in case something prevents you from traveling.
Of course, you will have to make sure that the policy covers the eventual reasons for the cancellation that you want to cover.
There are some packages that allow you to protect yourself against a whole host of reasons, such as sickness etc. If you are not concerned with a health-related issue, you can take a wholesale "cancel for any reason" insurance.
There are some websites that help you do this. This one here for example will list you all the companies that give a certain insurance type in your country.
The rates can vary somewhere around 5% to 10% of the overall trip value, of course depending on all the different factors that play into insurance quotes.
Regarding the racing tickets, there is a chance that the travel insurance will not cover this. You can however, get a separate insurance for those if this is the case. There are Even ticket insurances from insurance companies like Allianz, and one from tour organizers for the Singapore F1 (this is a South African one) themselves. It seems however after searching more that you will have to get this kind of insurance from the ticket vendor itself. Unless your travel insurance covers it or your ticket vendor does, you might be out of luck on that one.
So you could ask directly at the company that sold you the tickets if they offer such protection, or ask your local insurance company.
However, I personally never heard of a F1 race being cancelled or moved by several days. Maybe it would be worthwhile to investigate on the chances of that happening before breaking your head over an insurance.