If you want to stick to the "Path prefix with language fallback" mechanism, you cannot use the "Path prefix and default language" mechanism proposed by @user392795, which otherwise is great.
However, there are also solutions for this:
First case: You don't need Drupal's default feed on the front page
This is the simpler case, as we can exploit the shortcoming that Drupal will not do language negotiation when setting the "Default front page" field at /admin/config/system/site-information
. So just set it to a URL of a node or view etc. that is in Spanish. This solution is also dealt with in this question.
Just make sure the "Default front page" does not say "This is a multilingual variable." below it, because that adds language dependent front pages which are not available in Drupal out of the box. If this is the case, you can get rid of it by following this process in reverse.
Second case: You also want to keep the Drupal default feed on the front page
In this case, Drupal's language selection mechanisms govern the front page, so you have to make sure that users arrive at the frontpage always with the path prefix for Spanish. Else, the language fallback mechanism would kick in and determine the language from the profile preference or browser language, as explained by @kiamlaluno already..
So, set up a URL forwarder that will do this redirect. For example with the Apache mod_alias mechanism in .htaccess
:
Redirect 301 / /es/home
This one should also work, bit nicer:
Redirect 301 / /es
(If this does not work in your case, see some details.)