The protests came after some parties voted alongside the far-right party, Alternative for Germany (AfD), over a non-binding resolution on immigration last week.
Friedrich Merz caused dismay within his party for saying the law was so important he was prepared to pass it with support from the far-right, nativist Alternative for Germany.