Your if/else statement does not contain { or } so only one statement is being executed with those which means your sendNoteOn() function is being called every time. You need to go back to when the led is only toggled at the correct time, not every time
if ((data == midi_clock) && (play_flag == 1)) {
if (clk == 0) {
digitalWrite(tempoled, HIGH);
// insert note here
}
if (clk == 7) {
digitalWrite(tempoled, LOW); // this should light it up for 25% of the time
// insert note here
}
clk = (clk+1) % 24;
Serial.write(midi_clock); // send midi clock to out... Provides tempo!
}