OK I tested it out with a few different versions. This is with the nvidia "legacy" 340.107 drivers. with my macbook late 2009 (nvidia) I got empty /sys/class/backlight in every version of Ubuntu I tried. No amount of tinkering with GRUB_CMDLINE_LINUX_DEFAULT helped. Maybe with newer nvidia cards that don't require the "legacy" old drivers it might be different.
And xbacklight doesn't work either, until you add a device file like Satya's answer to this question mentioned. Then after exiting and logging in again, xbacklight works (ex: `xbacklight -set 60). But not the hotkeys and not the GUI dragger.
There's a library called "nvidiabl" that's supposed to be some fake software drivers to populate /sys/class/backlight when the nvidia ones don't. It didn't compile for me on 18.04 so no go there.
Based on a bug report that ascribed it to a gnome bug "not being able to use xbacklight", tried it with 18.04 with "kde plasma" and unity instead. With both of them the backlight keys work (notwithstanding empty /sys/class/backlight). So guessing it's a thing gnome could work around?
Tested it out using 19.04 and still needed the .conf file added, and /sys/class/backlight is still empty. But now it works natively (gnome), no manual hotkeys needed to call out to xbacklight, woot! Added bonus: gnome is way more cpu efficient in 19.04 than 18.04 so even using nouveau things are snappier, woot (also things are snappier on 18.04 with KDE FWIW).
So overall fix: update to 19.04 and create new conf.d file