default custom background image not saved in database when creating a new site

I assume you mean “get_theme_mod('background_image') returns falsebefore I “save it once to activate it”

If that is the case, get_theme_mod accepts a default parameter. Check the Codex:

$name
(string) (required) Theme modification name.

    Default: None 

$default
(boolean|string) (optional)

    Default: false

Pass your default image as the second parameter to that function and you should be set.