You might be confusing Gazebo worlds and models. A world is a single SDF file structured as below:
<!-- Included models, links etc. -->
For example, these are the contents of the sample
/usr/share/gazebo-9/worlds/willowgarage.world world file:
<?xml version="1.0" ?>
In order to pre-load a world at startup time, you pass the path to the file as argument to Gazebo:
$ gazebo /usr/share/gazebo-9/worlds/willowgarage.world
The directory structure you described looks more like that of a model, which in addition to a SDF file also includes a configuration and (optionally) other resources such as meshes, materials etc. As far as I know there's no way to directly load a model at startup time, other than as an element included in a world file.
So to answer your question, the problem is probably that Gazebo is expecting its argument to point to an SDF file, but finds it to be a directory instead, and crashes as a result.