Pewnie się mylę ale widząc twoje wywołanie z pierwszego posta CALL wnioskuję, że wywołujesz to z javy używając JDBC.
Nie wiem jak w mssql ale w oracle twoja procedura nie zwróci dataseta bo nie ma returna (jak pisał @GThoro) spróbuj zatem rozwiązania jakie podał kolega.
Jednak gdyby dalej nie działało to w piątek w pracy miałem z kolegą z pracy podobną sytuację. Kolega pisał javowy interface do logowania. Co prawda nie było ty mysql tylko mssql ale zasada powinna być ta sama. U nas rozwiązaniem było coś takiego:
String SPsql ="declare @ID int; exec @id = dbo.sp_LoginUser ?, ?; select @id ID"; //deklaracja zmiennej, exec i przypisane wartości return z procedury. ?? to parametry i na końcu select wyniku
PreparedStatement ps = m_db_conn.prepareStatement(SPsql);
ps.setEscapeProcessing(true);
ps.setQueryTimeout(100);
ps.setString(1,user);
ps.setString(2,password);
ResultSet rs=ps.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("ID"));
}