The problem is that F_CPU is already defined. you may try to add this instead:
#define F_CPU 1000000L
However, since your sketch is compiled after the source files, the millis() function (which delay() is based on) have probably been compiled with F_CPU = 16M. You'll hit the same problem if you e.g try to redefine the Serial buffer size in your sketch. Let's say you increase it to 128. if you print the buffer size macro
The serial monitor will print 128. Still the serial RX buffer is 64. Go figure!
Back to the topic; if you want to get this working properly without having to modify Arduino's core files, I've already done it for you! I've created a 3rd party hardware add-on for the IDE that adds extended support for ATmega8, ATmega48, ATmega88, ATmega168 and ATmega328. You can choose preferred clock frequency, BOD option and compiler LTO. You should definitely give it a try! --> GitHub - MCUdude/MiniCore: Arduino hardware package for ATmega8, ATmega48, ATmega88, ATmega168, ATmega328 and ATmega328PB
(If you'll ever want to dive deeper into the AVR family, you can find the rest of my work here)