Don't worry, the contract is indeed completely worthless. In order for a valid contract to exist there must be consideration for the promise to perform. In English law, a mere gratuity is not a valid contract.
In other words, if I promise to pay you �50, you cannot hold me to this contract UNLESS you have promised to (or have given me) something in return. Whether I promise to pay you �50 for your old car, or an old piece of string is irrelevant in the eyes of the law. It is not for them to inquire into the value of your transaction, it just must have some worth ("a mere peppercorn" would be acceptable in return for payment if this is the bargain a person chooses to make). Bad bargain promises will still be upheld by the courts.
As you have promised to DONATE money, there is no consideration for your promise and therefore it cannot be enforced by the charity.
I do hope this helps??