How is it possible i could spend a money that already deduct from my account and move it to another wallet..
Because until the transaction is confirmed, the money has not left your wallet yet. By broadcasting a transaction, all you've done is essentially send out a message saying "I want to move money from here to there". Until the transaction is confirmed, no money has actually moved.
You can send out two different messages sending the same money to different places. Whichever one is confirmed first is where the money will go, and the other one will be made invalid.