Defaults! Even if you only SET a few settings in puppet.conf, all of the POSSIBLE settings still have values. These default values are set in a file called defaults.rb, which is part of Puppet's code. See it here:
https://github.com/puppetlabs/puppet/blob/master/lib/puppet/defaults.rb Or you can see the config reference at
http://docs.puppetlabs.com/references/latest/configuration.html --- that explains most of the default values.
You'll notice that many settings are set *in terms of* other settings, so that you end up only really having to set a small core group of settings.
What is that small core group? Well... that's kind of tricky to tease out, actually. The historical context is that we've tended to make every global constant in Puppet's code into a configurable setting, and the result is that we have over 200 of them. We know that's a problem; a lot of the work we're doing these days can be summarized as "reduce configuration, make things more knowable." But once you add a configurable knob, someone might start using it, and removing it becomes a lot harder than not having put it in would have been.
But the list of the most important settings here (
http://docs.puppetlabs.com/guides/configuring.html#puppets-settings) is a good place to start. You won't need to know much more than that for a while.