It does not surprise me that the House Democrats voted for this bill, but it does seem more than a bit disingenuous for the House Republicans. Traditionally, those Republicans have opposed any measure that would pay workers for not working -- even when it's for a good reason (like paid sick leave, paid vacations, paid maternity leave, etc.). That's why the United States government stands alone among developed nations in refusing to guarantee any of those things to American workers.
So why are those Republicans voting against their own traditional stance -- to not pay workers for not working? It's because they know they made a serious mistake in overreaching on their demands and causing the government shutdown, and they see all the polls that blame them (justifiably) for the shutdown. They also realize that they have angered those 800,000 workers (plus their families and friends) -- and that represents a sizable block of voters (that they simply can't afford to throw away considering how poorly they have been doing in national elections).
So the Republicans have now voted to pay workers for not working. But the crazy part of this is that they didn't vote to put those workers back to work. Instead, they made it clear that those furloughs will be extended.
I do not oppose these workers getting their full salaries. But I think they should be paid for working. They should be sent back to work by ending the shutdown, so they can resume providing the vital services to American citizens that they were hired to provide. By extending the shutdown, which the GOP is doing, they are making sure these workers get paid for doing absolutely nothing (perhaps for an extended time).
It just goes to show what a deep hole the House Republicans have dug for themselves. By forcing a government shutdown without having a strategy to end it, they have put themselves in the position of having to vote against their own beliefs and policies -- which is that workers shouldn't be paid for not working.