AVR Timer not operating as quickly when changing number of PINs being turned on/off
Judging by your code you're doing the following:

Set up timer.

Start loop:
   Is timer at (or more than) one second?
       Yes:
           Turn off LEDs,
           Reset Timer
       No:
           Turn on LEDs.
Repeat loop.

This means that the LEDs are on for the entire timer count, then they turn off at 1 second.  They then immediately turn on again because the timer is no longer >= 1 second.

In the original example PORTB ^= (1 &lt;&lt; 0); // Toggle the LED switches the LED on if it is off, or off if it is on.  What you should be doing is something like:

for (;;) {
    if(TCNT1 &gt;= 15624){
        PORTB = ~PORTB;
        TCNT1 = 0;
    }
}


(I haven't tested this code, but the theory is sound)

Every second that passes the timer is reset and the LEDs are inverted.  You could pre-load PORTB with a value, and any LEDs that are off will be turned on, and any that are on will be turned off.