## Bug description

From [a customer report](https://posthoghelp.zendesk.com/agent/tickets/653):

```
I'm accessing insight results through the API, and I’ve noticed that sometimes the result is null in the response.
When I go and view the insight in Posthog and tap “refresh” the result starts to return in the API response.
I’ve also noticed there is a “refreshing” boolean flag in the insight response.
How do I set the insight to either refresh periodically or on request so I always get a result through the API?
```

It seems like the insight returns null if it's not refreshed manually from the frontend.

## How to reproduce

1. Call an insight with GET | /api/projects/:project_id/insights/:id
2. Response is `null`
3. Refresh the insight from the frontend
4. Response is populated

## Environment

- [ ] PostHog Cloud
- [ ] self-hosted PostHog, version/commit: please provide

## Additional context


posthog/api/insight.py
if (self.action == "list" or self.action == "retrieve") and str_to_bool(
            self.request.query_params.get("basic", "0")
        ):
            return InsightBasicSerializer
        return super().get_serializer_class()
    def get_queryset(self) -> QuerySet:
        queryset = super().get_queryset()
        if not self.action.endswith("update"):
            
            queryset = queryset.filter(deleted=False)
        queryset = queryset.prefetch_related(
            "dashboards", "dashboards__created_by", "dashboards__team", "dashboards__team__organization"
        )
        queryset = queryset.select_related("created_by", "last_modified_by", "team")
        if self.action == "list":
            queryset = queryset.filter(deleted=False)
            queryset = self._filter_request(self.request, queryset)
        order = self.request.GET.get("order", None)
        if order:
            if order == "-my_last_viewed_at":
                queryset = self._annotate_with_my_last_viewed_at(queryset).order_by("-my_last_viewed_at")
            else:
                queryset = queryset.order_by(order)
        else:
            queryset = queryset.order_by("order")
        return queryset
    def _annotate_with_my_last_viewed_at(self, queryset: QuerySet) -> QuerySet: