In order to call a static method, you'll need a direct reference of the type:
RolesService.IsUserInRole(...);
In which case, if you want to be able and call the "derived" class's static method, dropping the "new" keyword will allow you to:
MockRoleService.IsUserInRole(...);
and get the expected function call.
My guess is that this isn't what you're looking for. You likely have some call somewhere in your code like the former, and you're hoping that by using a Mocking tool to create a MockRoleService, you'd be injecting this new "type" in place of the old one. Unfortunately, that's not how it works with statics.
A mocking tool will create an instance of the mocked out type and will inject that in place of a call to construct the real type. A call to a static method skips all of that.
As Aaronaught mentioned, you should probably make this method a normal instance method. This would allow your mock service to be properly injected in place of your regular RolesService, allow you to move the method declaration into your IRolesService interface, and override it in your MockRoleService implementation. Then, in the code where you "get" a RolesService, you just call the instance member instead of the static.
IRolesService svc = MyServiceInjector.GetService<IRolesService>();
svc.IsUserInRole(...);