First of all, I'm not sure if Bush ever made any effort to enforce this piece of garbage [nb: there is no such thing as an unconstitutional "law"; there are unconstitutional statutes, acts, regulations, and ordinances, but they are not laws]. So we turn to the question of whether he should have passed it.
I think there are sound arguments to be made both ways, actually. Bush probably signed it with pretty solid knowledge that the evil parts would be struck down. The question is whether the Constitution is better served by passing and signing garbage lesilation which gets struck down, or having such legislation hang around until the judicial climate is 'right'. Bush probably decided that the only way to kill this thing for good was to have it get passed, signed, and struck down.
Of course, he should be aware that such garbage never dies, even when struck down. The "Gun Free School Zones" act was struck down in Lopez, but that didn't stop Congress from passing it again by a 97-2 margin, nor the House (though not by quite so big a margin); nor did it stop Clinton from signing it.