each second I would like to read a counter value which is incremented when a signal is present on pin 2
What is providing the signal to pin 2 which is supposed to be 1000 counts/second?
TCCR1A = 0;
TCCR1B = 0;
timer1_counter = 34286; // preload timer 65536-16MHz/256/2Hz
TCNT1 = timer1_counter; // preload timer
TCCR1B |= (1 << CS12); // 256 prescaler
TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt
I think you have set up the overflow for .5 second not 1 second.
By your calulation 65536 - 34286 = 31250 .0625256 = .5
The factor of 2 is only relevant when you are using the timer in a mode where it counts up and down.
When you initialize the registers you have Normal Mode (WGM13:WGM10 =0) which only counts up to OxFFFF and resets.