Can I suggest you use the debug mode to see what is actually being compared, by adding the parameter debug='true' to your wpv-conditional shortcode?
I set up a simple test where I added the user custom field 'societe' and filled in that field for just some of my users, leaving it blank for others.
In my case my user custom field is just a single line text field, and so if I do not fill it in, it will be empty. This may not be the case if you are using something like a select box, depending on how you have it set up, but the debug mode will reveal what is being retrieved from the database.
So I created a simple view that lists users of any role with no filters, and added the following in my loop output:
<wpv-loop>
<p>User: [wpv-user field='display_name']</p>
[wpv-conditional if="( '[types usermeta="societe" output="raw"][/types]' ne '')" debug='true']<p>Has societe.</p>[/wpv-conditional]
<p>Societe is: [types usermeta='societe'][/types]</p>
</wpv-loop>
For a user that does have an entry for the societe user field, the debug output shows the following:
####################
wpv-conditional attributes
####################
Array
(
[if] => ( 'Carrefour' ne '')
[debug] => true
)
####################
Debug information
####################
--------------------
Original expression: ( 'Carrefour' ne '')
--------------------
After replacing 1 general variables and comparing strings: ( 'Carrefour' ne '')
Comparing Carrefour to
You can see the string Carrefour is being compared to an empty string (and they are not equal).
For a user with no entry for societe, the debug info shows:
####################
wpv-conditional attributes
####################
Array
(
[if] => ( '' ne '')
[debug] => true
)
####################
Debug information
####################
--------------------
Original expression: ( '' ne '')
--------------------
After replacing 1 general variables and comparing strings: ( '' ne '')
Comparing to
Here we are comparing an empty string with an empty string, i.e. they are equal.
I suspect that your issue is that your empty fields are not actually empty strings, but the debug mode will reveal that.
If that still doesn't help, than please let me know.