Case 1 - get users that are alreadyfollowed by user.
Case 2 - get users that are not being followed by user : but I get all users including ones who are followed by the user. So I only need users with a specific role who the user isn’t following.
First of all, let me explain why do you get such result.
Column following is 1:many relation and you have user(at least one) that have follower with id D5C035C8-365B-452C-B582-122EAD1C6F23 and also with other id. So when you ask backendless give me records that contains D5C035C8-365B-452C-B582-122EAD1C6F23 it will join tables and returns the only user with particular id. But if you say give me the records that does not equals D5C035C8-365B-452C-B582-122EAD1C6F23 it still join tables end exclude record that has the id, and as your user has more then one relation you will see it.
So the simplest way to implement case 2 is to execute 2 queries:
where following.objectId = 'D5C035C8-365B-452C-B582-122EAD1C6F23' AND role = 'Jockey'