There is a slightly round-about way of getting the list of Custom Settings using the metadata api. In this example, i use the REST api to access it.
You can get you all of the objects in your org. Each type of Custom Setting is saved as a different custom object definition. So, if you iterate through this list, only look at those objects that have the 'customSetting' property = true. Here's an abbreviated version of how I do it in Groovy with the REST API (some sections omitted). You can find documentation about the response in the REST API Guide
def conn = new SfRestConnection(username, password, clientId, clientSecret, SfRestConnection.SfAuthenticationEndpointForProd)
conn.login()
//as an example: https://na1.salesforce.com/services/data/v26.0/sobjects/
def results = conn.get('sobjects', null, null)
for(def obj in results.sobjects)
{
if(obj.customSetting)
println obj.name
}