не понятно, какой влияние оказывает третья таблица на вторуюНапрямую никакого. У вас INNER JOIN `wp_company_rates` и `wp_term_relationships`, поэтому естественно, что в финальную выборку попадут только те строки, которые совмещаются по условию JOIN'a. Если после RIGHT JOIN вы получили в объединённой строке `wp_company_rates`.`post_id` равное NULL, то, естественно, в INNER JOIN эта строка не войдёт.
import mysql.connector
conn = mysql.connector.connect(host='127.0.0.1', database='test', user='user', password='')
cursor = conn.cursor()
sql = "UPDATE `user` SET `participate`=%s WHERE `id` = %s"
cursor.execute(sql, [number, id])
conn.commit()
select u.*
from users u
where not exists(
select 999
from user_statuses us
where us.user_id = u.id
and us.status_id = 1
)