### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

It seems that it is possible to receive sns message in an sqs listener if there is a filterpolicy in place for null value in a message attribute, and a message is being sent without the message attribute.

### Expected Behavior

Don't recieve these type of messages

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

`sns subscribe --topic-arn "demoTopicArn"  --protocol sqs --notification-endpoint "demoSqsEndpoint" --attributes '{"RawMessageDelivery": "true"}'`
`sns set-subscription-attributes --subscription-arn demoSubsArn --attribute-name FilterPolicy --attribute-value '{"testForNull": [null,{"anything-but": ["notgood"]}]}'`
`sns publish --topic-arn demoTopicArn --message "testforrecieval"`
`sqs receive-message --queue-url  "demoUrl"`

### Environment

```markdown
- OS: macOS 13.6
- LocalStack: 2.2.0
```


### Anything else?

_No response_
"key": [{"prefix": "auto-"}],
            "nested_key": [{"exists": False}],
        }
        payload = {
            "key": "auto-test",
        }
        We can now properly evaluate the conditions on the same level of depth in the dict object.
        As it passes the filter policy, we then continue to evaluate the top keys, going back to "test".
        :param filter_policy: a dict, starting at the FilterPolicy
        :param payload: a dict, starting at the MessageBody
        :return: True if the payload respect the filter policy, otherwise False
        """
        for field_name, values in filter_policy.items():
            
            if not isinstance(values, list):
                if not self._evaluate_nested_filter_policy_on_dict(
                    values, payload.get(field_name, {})
                ):
                    return False
            else:
                
                if not any(
                    self._evaluate_condition(
                        payload.get(field_name), condition, field_exists=field_name in payload
                    )
                    for condition in values
                ):
                    return False
        return True
    def _evaluate_filter_policy_conditions_on_attribute(