Thanks for writing back and sharing the updates.
1. Your detailed tests results confirm what is happening here with custom field filters and it is the expected behavior. This is not something specific to Toolset and let me explain why.
The way post meta or custom field Query works in WordPress, it ignores all posts where no custom field entry record exists with the participating key/slug.
( ref: https://developer.wordpress.org/reference/classes/wp_query/#custom-field-post-meta-parameters )
The following example will make this more clear. Suppose that I have 3 posts in post type Books, with the following state of custom field with key/slug "wpcf-book-price":
a). Book A: no custom field record exists with "wpcf-book-price" key/slug.
b). Book B: a custom field record exists with "wpcf-book-price" key/slug, but the value is empty/null
c). Book C: a custom field record exists with "wpcf-book-price" key/slug, with a value "100"
In this case, when we'll apply custom field filter to posts with key "wpcf-book-price", "Book A" will always be ignored, regardless of the comparison type.
This is also consistent with what your results show, provided that from "null | null" you meant that two of your posts had no custom field record for "Display Number" and "Display String" fields.
Important note: In our experience, the Toolset Modules package is not very useful for troubleshooting and investigations like these. It includes the Toolset components but doesn't cover the actual data and can't recreate the actual website's entire environment, as a whole.
If you still feel we're discussing a different point and something still needs investigation, you're welcome to share a duplicator package.
https://toolset.com/faq/provide-supporters-copy-site/
(I've set your next reply as private)
2. I understand that the main point of confusion regarding the drop-down for the custom field filter in question is that it is connected to the Toolset Types fields and field groups when it is not.
To generate that list of custom fields, the plugin gets all existing custom field keys available in the "postmeta" (custom fields) table and stores them in the cache.
( a cache is introduced here to enhance performance so that an expensive database query like this can be minimized )
This list is not limited to custom fields defined through Types, to allow users to apply filters based on custom fields added through other plugins and themes too.
To remove an item from that drop-down, it is important that:
- first, all custom field records with that key/slugs have been removed from the "postmeta" table in the database.
- then to quickly see the updated list, the "Clear custom fields cache now" button can be used which will regenerate the list.
It works the same for new or existing views.
Another important point to note here is that when a Toolset Type custom field is deleted from a field group or even the entire field group is deleted from the admin area, it doesn't actually delete the associated custom field records/entries from the "postmeta" table. To actually delete those, you'll have to either use some custom code or a database management tool like "phpMyAdmin".
( ref: hidden link )
I hope this makes it more clear.
3. You can reach to the known issues section through its link in the sidebar, at the new ticket submission page:
https://toolset.com/forums/forum/professional-support/
Screenshot: hidden link