You will need two arrays instead of just one, one to hold the pattern like you have now, and one to hold the current state of the LEDs.
for(int i = 0; i<8; i++){
if(led[i] == 1) ledState[i] ^= 1; // this will blink all the LEDs in the pattern
}
delay(300); // so you can see it.
And then send the ledState array out to the shift registers.
See how you have to be very careful when you specify something because woolly talk can be misinterpreted.