Is hibernate second level cache enabled by default ?
It's not. The second level cache is a separate caching library that you need to add as dependency and configure it, like for example EHCache, hazelcast, cache2k,...
If I did want to use it would the possibly improved performance come at the expense of increased memory usage or does it just use disk space.
Trading in more memory usage for lower external requests is the essence of caching. Depending on your application this can have different effects. If your application does not request some rows more frequently than the other and you have lots of data, caching might be counter productive. However, this is very rare.
You can limit the amount of memory used by the cache, so once full the used memory will be fairly constant.
One of the main reasons for using a database is so that my application can scale and does not require more and more memory.
"Scale" means different things. It can mean that your application needs to cope with more and more data, or, it can mean that your application needs to cope with more and more users. Or both. Caching helps you deal with more users and handle requests with lower latency, thus, improving your user experience.
For small cache sizes, it can happen that your memory consumption even lowers. Since there is less activity to request the data from the database, you will have less GC activity in the VM and need less database connections and other resources.
My advice:
My experience says, that even a very small cache of lets say 1000 entries, has a big impact. That's because 99% of the applications have some hotspots of data that is requested very often. It's not possible to answer your question on a theoretical level without knowing your application. The best way is to try it.