I have two igraph objects, which have different color attributes.
Vertices \"A\" and \"B\" in first graph are colored red.
Vertices <
igraph doesn't loose the colors, it stores them in $color_1 and $color_2. I think this is because in the general case there might be common vertices with different colors. What would you do then?
Try this:
V(graph)$color <- ifelse(is.na(V(graph)$color_1),
V(graph)$color_2,V(graph)$color_1)
plot(graph)

BTW: your code didn't run for me. I had to use:
graph <- graph.union(graph.1, graph.2, byname=T)