### 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_
for condition in conditions:
            if self._evaluate_condition(value, condition, field_exists):
                return True
        return False
    def _evaluate_condition(self, value, condition, field_exists: bool):
        if not isinstance(condition, dict):
            return value == condition
        elif (must_exist := condition.get("exists")) is not None:
            
            
            return must_exist == field_exists
        elif value is None:
            
            return False
        elif anything_but := condition.get("anything-but"):
            return value not in anything_but
        elif prefix := (condition.get("prefix")):
            return value.startswith(prefix)
        elif numeric_condition := condition.get("numeric"):
            return self._evaluate_numeric_condition(numeric_condition, value)
        return False
    @staticmethod
    def _evaluate_numeric_condition(conditions, value):