You didn't mention which board you're compiling for, but if it's an Uno or Nano, you're almost certainly running out of memory. Which the return value from the display.begin call would have told you.
Compiling for an Uno gives the following memory usage:
Global variables use 992 bytes (48%) of dynamic memory, leaving 1056 bytes for local variables. Maximum is 2048 bytes.
The Adafruit_SSD1306 library attempts to allocate a further 1024 bytes at runtime, bringing your RAM usage up to 2016 of the available 2048 bytes. A brief look at the FastLED library revealed some more runtime RAM requirements thanks to some new() calls, so I'm going to guess that there isn't 1024 bytes left by the time the program starts running, thanks to FastLED and whatever the stack needs.
You might look into one of the text only SSD1306 libraries that don't use a 1K screen buffer.