If I've voted to close a question, and realise that I was mistaken, is there a way to undo this? (Assume that the question is not closed yet). Clicking on close again just tells me that I've already done it.
No, but your vote will expire harmlessly after a few days if 4 other people don't vote to close.
For reference, a request to allow close vote undoing was declined on Meta Stack Overflow.