I lost some of my belongings, including a leather bag, credit card, laptop, etc. As I realized my card is missing, I called the credit company and closed that account, but before that happened, someone used my card to book a hotel in the USA. I got the name of the hotel from the credit company and called them, and they said they booked a room with that card but will cancel it. The info I got from hotel showed that it charged $1 to my card, but the booking is still there. Can the hotel demand that I pay for that booking, as the booking status shows it cannot be cancelled? I have never stayed in hotels or visited the USA.
This is an authorization rather than a charge; it indicates that the hotel checked to see whether your card was valid, but does not tell you whether they submitted an actual charge. As it is only a dollar it will have no practical effect and you should expect it to "fall off" on its own.
Unless you are using the wrong terminology, this was a mistake on both your part and the card company's CSRs. You should have reported the card lost rather than closing the account; depending on your card issuer's exact policy this will almost certainly reduce your liability for fraudulent charges, even if they were made while the card was still active.
They could submit a charge anyway, but they have already told you that they won't do this, and submitting a charge would not force you to pay but rather force you to have to use your card company's dispute resolution process.
It seems likely that the hotel's online booking status is telling you "can't be cancelled" in the sense that it couldn't be cancelled at request of the customer; probably their online system doesn't match up perfectly with their actual procedures.
It may be advisable to call the hotel back and ask for an official fax on hotel letterhead, or email from a hotel address, confirming in writing the verbal statement from them that they agree not to charge your card for this fraudulent booking. This should protect you if it goes to a dispute.
And for goodness sake's, report your card missing properly if you haven't done so already.
You don't indicate in which country or at which institution the card account is held, or what type of card it is. All of these factors may affect your liabilities.
(For example, your liability on a lost/stolen U.S.-based credit card is up to $50 if the loss or theft of the card is reported after transactions have been made. But your liability is $0 if only the number, not the physical card, was stolen, and different rules also apply for debit transactions).
In postpaid bookings, the hotel may make a test charge to confirm that the card is valid and that credit is available. This is likely the $1 charge you see. Because it is only $1, it may not have triggered anti-fraud detection or indeed verification requirements in the first place.
You should contact both the hotel and your credit card company:
I would call your credit card helpdesk for advice. I had a similar issue some time ago and disputed the transaction. That resulted in a reimbursement and a request to the seller (in you case that would be the hotel in the US) to prove that I approved the initial payment with either my signature, official ID or PIN authorized transaction. Usually transactions below a certain threshold are not verified, so these transactions can easily slip through, but the risk then lies with the party accepting the payment.
So simply cancel the payment.
I assume this is the default global policy of the major credit cards. If it isn't please tell, it would be interesting to know if my cc company has this service only locally.