Почему то strpos работает не правильно?
Коротко - не передавайте в strpos число (int), a передавайте строку (sting) и проблем не будет

Разврёнуто
Читаем документацию https://www.php.net/strpos

needle
Если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведен к строке, либо должен быть выполнен явный вызов chr().

Если прогнать ваш код то видим ошибку
Deprecated: strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in /in/2JE4h on line 4


Чтобы код отрабатывал как ожидается, $user_ip должен иметь тип string

так
$user_ip = (string)94301750;
или так
$user_ip = '94301750';

В противном же случае вместо "94301750" в strpos уходит результат chr(94301750) что есть строка "6"
и получается в итоге strpos('1334268210|3322954437', '6') отсюда и результат Yes
https://www.php.net/manual/ru/function.strpos.php:
Если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведен к строке, либо должен быть выполнен явный вызов chr().

$user_ip = "94301750";
if ( strpos('1334268210|3322954437', $user_ip) !== false ) {
    echo 'Yes';
}
// ...