Porca miseria, in realtà l'ho capito da solo. Dovevo solo rimuovere il join nella definizione del metodo:
def self.from_users_followed_by(user)
followed_user_ids = user.followed_user_ids
where("user_id IN (?) OR user_id = ?", followed_user_ids, user)
end
user.followed_user_ids.join(', ')
produce questo:"1, 2, 3"
mentre
user.followed_user_ids
produce questo:1, 2, 3
che è quello che volevo.