Well, first you are not ORing the images you are ANDing the images. Second if you want binary output, why do you convert to [0,1] and then multiply by the image number. When you use integers, the binary functions work on the all of the bytes so that a value of 1 is b00000001 and a value of 2 ix b00000010 is if you OR them together you get b00000011. If you still need to multiply by the image number then after you are done do a compare with any number greater than zero set equal to one.
I have attached a modified file. Is this the output you want.
By the way, this would not be considered concatination but could be called overlaying. Concatination is connecting them at the edges but keeping each separate. Is this what you want to do?